import axios from './axios';
import { baseURL } from '@/config/settings';

// 产品检验报告API
export const productInspectionReportApi = {
  /**
   * 获取指定溯源码的所有检验报告
   * @param {string} traceabilityCode 溯源码
   * @returns {Promise<Array>} 检验报告列表
   */
  async getByTraceabilityCode(traceabilityCode) {
    try {
      const response = await axios.get(`/api/ProductInspectionReport/${traceabilityCode}`);
      return response.data;
    } catch (error) {
      console.error('获取检验报告列表失败:', error);
      throw error;
    }
  },

  /**
   * 获取指定ID的检验报告
   * @param {number} id 检验报告ID
   * @returns {Promise<Object>} 检验报告
   */
  async getById(id) {
    try {
      const response = await axios.get(`/api/ProductInspectionReport/detail/${id}`);
      return response.data;
    } catch (error) {
      console.error('获取检验报告详情失败:', error);
      throw error;
    }
  },

  /**
   * 上传检验报告
   * @param {string} traceabilityCode 溯源码
   * @param {File} file 报告图片文件
   * @returns {Promise<Object>} 上传结果
   */
  async uploadReport(traceabilityCode, file) {
    try {
      const formData = new FormData();
      formData.append('file', file);
      
      const response = await axios.post(
        `/api/ProductInspectionReport/${traceabilityCode}/upload`,
        formData,
        {
          headers: {
            'Content-Type': 'multipart/form-data'
          }
        }
      );
      return response.data;
    } catch (error) {
      console.error('上传检验报告失败:', error);
      throw error;
    }
  },

  /**
   * 删除检验报告
   * @param {number} id 检验报告ID
   * @returns {Promise<Object>} 删除结果
   */
  async deleteReport(id) {
    try {
      const response = await axios.delete(`/api/ProductInspectionReport/${id}`);
      return response.data;
    } catch (error) {
      console.error('删除检验报告失败:', error);
      throw error;
    }
  },

  /**
   * 构建完整的图片URL
   * @param {string} url 图片相对URL
   * @returns {string} 完整URL
   */
  getImageUrl(url) {
    if (!url) return '';
    
    // 如果已经是完整URL
    if (url.startsWith('http://') || url.startsWith('https://')) {
      return url;
    }

    // 返回完整URL
    return `${baseURL}${url.startsWith('/') ? '' : '/'}${url}`;
  }
}; 